/*! @file headers.h
 *        @brief All headers from CUSP & Thrust library required for this benchmark 
*/

/*Header Include: Data structure and Benchmark routines */

/*Include CUSP headers*/
#include <cusp/io/matrix_market.h>
#include <cusp/array1d.h>
#include <cusp/coo_matrix.h>
#include <cusp/csr_matrix.h>
#include <cusp/ell_matrix.h>
#include <cusp/hyb_matrix.h>
#include <cusp/dia_matrix.h>

#include <cusp/print.h>
#include <cusp/krylov/cg.h>
#include <cusp/krylov/bicgstab.h>
#include <cusp/krylov/gmres.h>

/*Utility and timers*/
#include "timer.h"
#include <string.h>
#include <cstdlib>

/* Headers frm Thrust library for host and device vectors */
#include <thrust/generate.h>
#include <thrust/host_vector.h>
#include <thrust/device_vector.h>

/* These are matrix types from CUSP */
#define CSR 0
#define ELL 1
#define COO 2
#define HYB 3
#define DIA 4

/*Number of conversions that we will perform for every matrix type */
#define CONVERSION_COUNTS 50

#define BENCHMARK_VERSION "1.0"
